package com.ligong.blog.common.util;

import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;

import javax.swing.text.StyledEditorKit;
import java.nio.charset.StandardCharsets;
import java.util.UUID;

public class SecurityUtils {
    /**
     * 加密
     * @param password 传入的明文
     * @return 盐值 + 密文
     */
    public static String encrypt(String password) {
        String salt = UUID.randomUUID().toString().replace("-","");
        // 密文
        String finalPassword = DigestUtils.md5DigestAsHex((salt + password).getBytes(StandardCharsets.UTF_8));
        // 存储的是 盐值 + 密文
        return salt + finalPassword;
    }

    public static Boolean verify (String password, String sqlPassword) {
        if (!StringUtils.hasLength(password) || !StringUtils.hasLength(sqlPassword)) {
            return false;
        }
        if (sqlPassword.length() != 64) {
            return false;
        }
        String salt = sqlPassword.substring(0, 32);
        String finalPassword = DigestUtils.md5DigestAsHex((salt + password).getBytes(StandardCharsets.UTF_8));
        return sqlPassword.equals(salt + finalPassword);
    }
}
